// class Producer {
// 	constructor() {
// 		this.listeners = [];
// 	}
// 	addListener(listener) {
// 		if(typeof listener === 'function') {
// 			this.listeners.push(listener)
// 		} else {
// 			throw new Error('listener 必须是 function')
// 		}
// 	}
// 	removeListener(listener) {
// 		this.listeners.splice(this.listeners.indexOf(listener), 1)
// 	}
// 	notify(message) {
// 		this.listeners.forEach(listener => {
// 			listener(message);
// 		})
// 	}
// }
function clickHandler(event) {
	console.log('user click!');
}

document.body.addEventListener('click', clickHandler)

class Producer {
    constructor(){
        this.listeners = [];
    }
    // 加入监听的方法
    addListener(listener){
        if(typeof listener === 'function'){
            this.listeners.push(listener);
        } else {
            throw new Error('listener 必须是 function');
        }
    }
    removeListener(listener){
        this.listeners.splice(this.listeners.indexOf(listener), 1);
    }
    // 发送监听事件/传参
    notify (message) {
        this.listeners.forEach(listener => {
            listener(message);
        })
    }
}
var egghead = new Producer(); 
// new 出一个 Producer 实例叫 egghead

egghead.addListener(message => {
    console.log(message);
})

egghead.notify('hello world');
egghead.removeListener()
console.log('egghead',egghead)